home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / share / perl5 / MLDBM / Serializer / Storable.pm < prev   
Encoding:
Perl POD Document  |  1998-05-10  |  881 b   |  42 lines

  1. ####################################################################
  2. package MLDBM::Serializer::Storable;
  3. BEGIN { @MLDBM::Serializer::Storable::ISA = qw(MLDBM::Serializer) }
  4.  
  5. use Storable;
  6.  
  7. sub new {
  8.     my $self = shift->SUPER::new();
  9.     $self->DumpMeth(shift);
  10.     # Storable doesn't honor other attributes
  11.     $self;
  12. }
  13.  
  14. #
  15. # Serialize a reference to supplied value
  16. #
  17. sub serialize {
  18.     my $self = shift;
  19.     my $dumpmeth = $self->{'_dumpsub_'};
  20.     &$dumpmeth(\$_[0]);
  21. }
  22.  
  23. #
  24. # Deserialize and de-reference
  25. #
  26. sub deserialize {
  27.     my $obj = Storable::thaw($_[1]);        # Does not care whether portable
  28.     defined($obj) ? $$obj : undef;
  29. }
  30.  
  31. #
  32. # Change dump method when portability is requested
  33. #
  34. sub DumpMeth {
  35.     my $self = shift;
  36.     $self->{'_dumpsub_'} = 
  37.       ($_[0] && $_[0] eq 'portable' ? \&Storable::nfreeze : \&Storable::freeze);
  38.     $self->_attrib('dumpmeth', @_);
  39. }
  40.  
  41. 1;
  42.